from selenium import webdriver
from selenium.webdriver.common.by import By


class TestCase:
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.baidu.com')

    # get_attribute
    # outerHTML 源代码
    def id(self):
        # 通过id定位
        kw = self.driver.find_element(By.ID, 'kw')
        print(kw.get_attribute('outerHTML'))
        su = self.driver.find_element(By.ID, 'su')
        print(su.get_attribute('outerHTML'))

    def name(self):
        # 通过name属性定位,一般是input标签里有
        kw = self.driver.find_element(By.NAME, 'wd')
        print(kw.get_attribute('outerHTML'))

    def class_name(self):
        # 通过类属性名定位
        kw = self.driver.find_element(By.CLASS_NAME, 's_ipt')
        print(kw.get_attribute('outerHTML'))

    def tag_name(self):
        # 通过标签名定位
        ipts = self.driver.find_elements(By.TAG_NAME, 'input')
        print(ipts[7].get_attribute('outerHTML'))

    def link_text(self):
        # 通过超文本链接的文本值定位
        news = self.driver.find_element(By.LINK_TEXT, '新闻')
        print(news.get_attribute('outerHTML'))

    def partial_link_text(self):
        # 通过超文本链接的部分文本值定位
        hao123 = self.driver.find_element(By.PARTIAL_LINK_TEXT, 'hao')
        print(hao123.get_attribute('outerHTML'))

    def quit(self):
        self.driver.quit()


if __name__ == '__main__':
    case = TestCase()
    # case.id()
    # case.name()
    # case.class_name()
    # case.tag_name()
    # case.link_text()
    case.partial_link_text()
    case.quit()

